package opf5.casosDeUso;

import java.util.ArrayList;
import java.util.List;

import opf5.entities.dominio.Inscripcion;
import opf5.entities.dominio.Partido;
import opf5.entities.repositorios.OPF5Factory;
import opf5.entities.repositorios.RepositorioPartidos;
import opf5.ui.VistaInscripcionPartido;

public class InscriptorPartidos extends LoginDependiente {
	private RepositorioPartidos repositorioPartidos;
	private List<Partido> partidosDisponibles;
	private VistaInscripcionPartido vista;
	
	public InscriptorPartidos(VistaInscripcionPartido inscripcionPartido,
			RepositorioPartidos repositorio) {
		this.vista = inscripcionPartido;
		
		this.repositorioPartidos = repositorio;
	}

	public List<Partido> getPartidosDisponibles() {
		partidosDisponibles = this.repositorioPartidos.getPartidosDisponiblesPara(this.jugador);
		
		return partidosDisponibles;
	}
	
	private List<PartidoDTO> adaptarPartidos(List<Partido> partidosDispobibles) {
		List<PartidoDTO> partidosAdaptados = new ArrayList<PartidoDTO>();
		
		for (Partido partido : partidosDispobibles) {
			partidosAdaptados.add(new PartidoDTO(partido));
		}
		
		return partidosAdaptados;
	}

	public void inscribirAPartido() {
		int indicePartido = this.vista.getIndicePartido();
		String tipoInscripcion = this.vista.getTipoInscripcion();
		
		Inscripcion inscripcion = OPF5Factory.getInstance().makeInscripcion(jugador, tipoInscripcion);
		partidosDisponibles.get(indicePartido).inscribir(inscripcion);
	}
}
